Micron Document
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
| SparkN0de-git | SparkN0de |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------


Displaying Raw • Download


sbapp/compat.py 2.0.1 (486a97e4) Text, 2.33 KB

Tff7b72def Td2a8ffpython314_kivy_patchTb4b4b4(Tb4b4b4)Tb4b4b4:
Tffa657printTb4b4b4(Ta5d6ff"Ta5d6ffRunning Kivy on Python 3.14+ detected, checking compatibility patch...Ta5d6ff"Tb4b4b4)
Tff7b72import T7ee787os
Tff7b72import T7ee787importlibT7ee787.T7ee787util
Tff7b72from T7ee787pathlib Tff7b72import Te6edf3Path

Tff7b72def Td2a8fffail_patchTb4b4b4(Tb4b4b4)Tb4b4b4:
Tffa657printTb4b4b4(Ta5d6ff"Ta5d6ffError: Failed to open KivyTa5d6ff'Ta5d6ffs lang/parser.py file for patching.Ta5d6ff"Tb4b4b4)
Tffa657printTb4b4b4(Ta5d6ff"Ta5d6ffKivy currently has bugs that prevents it from running on Python 3.14Ta5d6ff"Tb4b4b4)
Tffa657printTb4b4b4(Ta5d6ff"Ta5d6ffand above, and this file needs to be patched to run Sideband.Ta5d6ff"Tb4b4b4)
Tffa657printTb4b4b4(Ta5d6ff"Tffea00\nTa5d6ffYou can patch this manually by locating the lang/parser.py fileTa5d6ff"Tb4b4b4)
Tffa657printTb4b4b4(Ta5d6fffTa5d6ff"Ta5d6ffand replacing:Tffea00\nTffea00\nTffd700{Te6edf3kivy_target_1Tffd700}Tffea00\nTffea00\nTa5d6ffWith:Tffea00\nTffea00\nTffd700{Te6edf3kivy_patch_1Tffd700}Tffea00\nTa5d6ff"Tb4b4b4)
Te6edf3osTff7b72.Td2a8ff_exitTb4b4b4(T79c0ff0Tb4b4b4)

Te6edf3kivy_target_1 Tff7b72= Ta5d6ff"""Ta5d6ff if isinstance(node, (ast.JoinedStr, ast.BoolOp)):
Ta5d6ff for n in node.values:
Ta5d6ff if isinstance(n, ast.Str):
Ta5d6ff # NOTE: required for python3.6
Ta5d6ff yield from cls.get_names_from_expression(n.s)
Ta5d6ff else:
Ta5d6ff yield from cls.get_names_from_expression(n.value)Ta5d6ff"""

Te6edf3kivy_patch_1 Tff7b72= Ta5d6ff"""Ta5d6ff if isinstance(node, (ast.JoinedStr, ast.BoolOp)):
Ta5d6ff for n in node.values:
Ta5d6ff yield from cls.get_names_from_expression(n.value)Ta5d6ff"""

Te6edf3spec Tff7b72= Te6edf3importlibTff7b72.Td2a8ffutilTff7b72.Td2a8fffind_specTb4b4b4(Ta5d6ff"Ta5d6ffkivyTa5d6ff"Tb4b4b4)
Tff7b72if Te6edf3spec Tff7b72is Tff7b72None Tff7b72or Te6edf3specTff7b72.Td2a8fforigin Tff7b72is Tff7b72None Tff7b72or Te6edf3specTff7b72.Td2a8ffsubmodule_search_locations Tff7b72is Tff7b72NoneTb4b4b4: Te6edf3fail_patchTb4b4b4(Tb4b4b4)
Te6edf3contents Tff7b72= Tff7b72None

Te6edf3target_path Tff7b72= Ta5d6fffTa5d6ff"Tffd700{Te6edf3specTff7b72.Td2a8ffsubmodule_search_locationsTb4b4b4[T79c0ff0Tb4b4b4]Tffd700}Ta5d6ff/lang/parser.pyTa5d6ff"
Tff7b72tryTb4b4b4:
Tff7b72with Tffa657openTb4b4b4(Te6edf3target_pathTb4b4b4, Ta5d6ff"Ta5d6ffrbTa5d6ff"Tb4b4b4) Tff7b72as Te6edf3fhTb4b4b4: Te6edf3contents Tff7b72= Te6edf3fhTff7b72.Td2a8ffreadTb4b4b4(Tb4b4b4)Tff7b72.Td2a8ffdecodeTb4b4b4(Ta5d6ff"Ta5d6ffutf-8Ta5d6ff"Tb4b4b4)
Tff7b72except Tf85149Exception Tff7b72as Te6edf3eTb4b4b4:
Tffa657printTb4b4b4(Ta5d6fffTa5d6ff"Ta5d6ffError while reading KivyTa5d6ff'Ta5d6ffs lang parser file: Tffd700{Te6edf3eTffd700}Ta5d6ff"Tb4b4b4)

Tff7b72if Tff7b72not Te6edf3contentsTb4b4b4: Te6edf3fail_patchTb4b4b4(Tb4b4b4)
Te6edf3contents Tff7b72= Te6edf3contentsTff7b72.Td2a8ffreplaceTb4b4b4(Ta5d6ff"Tffea00\rTffea00\nTa5d6ff"Tb4b4b4, Ta5d6ff"Tffea00\nTa5d6ff"Tb4b4b4)

Tff7b72if Te6edf3kivy_patch_1 Tff7b72in Te6edf3contentsTb4b4b4: Tffa657printTb4b4b4(Ta5d6ff"Ta5d6ffKivy already patched for Python 3.14 compatibility, continuing.Ta5d6ff"Tb4b4b4)
Tff7b72if Te6edf3kivy_target_1 Tff7b72in Te6edf3contentsTb4b4b4:
Tffa657printTb4b4b4(Ta5d6ff"Ta5d6ffPatching Kivy for Python 3.14 compatibility...Ta5d6ff"Tb4b4b4)
Te6edf3contents Tff7b72= Te6edf3contentsTff7b72.Td2a8ffreplaceTb4b4b4(Te6edf3kivy_target_1Tb4b4b4, Te6edf3kivy_patch_1Tb4b4b4)
Tff7b72if Tff7b72not Te6edf3kivy_patch_1 Tff7b72in Te6edf3contentsTb4b4b4: Te6edf3fail_patchTb4b4b4(Tb4b4b4)
Tff7b72tryTb4b4b4:
Tff7b72with Tffa657openTb4b4b4(Te6edf3target_pathTb4b4b4, Ta5d6ff"Ta5d6ffwbTa5d6ff"Tb4b4b4) Tff7b72as Te6edf3fhTb4b4b4:
Te6edf3fhTff7b72.Td2a8ffwriteTb4b4b4(Te6edf3contentsTff7b72.Td2a8ffencodeTb4b4b4(Ta5d6ff"Ta5d6ffutf-8Ta5d6ff"Tb4b4b4)Tb4b4b4)
Tffa657printTb4b4b4(Ta5d6ff"Ta5d6ffKivy successfully patched for Python 3.14 compatibilityTa5d6ff"Tb4b4b4)
Tff7b72except Tf85149Exception Tff7b72as Te6edf3eTb4b4b4:
Tffa657printTb4b4b4(Ta5d6fffTa5d6ff"Ta5d6ffError while patching Kivy: Tffd700{Te6edf3eTffd700}Ta5d6ff"Tb4b4b4)
Te6edf3fail_patchTb4b4b4(Tb4b4b4)


──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────